﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;

namespace OSIRIS.Service.Contracts
{
    /// <summary>
    /// The IOSIRISService interface defines the contract
    /// of the service that should be implemented by the
    /// service class.
    /// </summary>
    [ServiceContract(Namespace = "http://localhost/Services/OSIRIS")]
    public interface IOSIRISService
    {
        /// <summary>
        /// Ask OSIRIS for permission if a student is allowed
        /// to start their final internship.
        /// </summary>
        /// <param name="number">The student's numer</param>
        /// <returns>True if allowed, false if not</returns>
        [OperationContract]
        bool AskForPermission(string number);

        /// <summary>
        /// Fetch the details of a Student.
        /// </summary>
        /// <param name="number">The number of the student</param>
        /// <returns>A filled StudentDetails object</returns>
        [OperationContract]
        StudentDetails GetStudentDetails(string number);

        /// <summary>
        /// Fetch the details of a Teacher.
        /// </summary>
        /// <param name="number">The teacher's number</param>
        /// <returns>A filled TeacherDetails object</returns>
        [OperationContract]
        TeacherDetails GetTeacherDetails(string number);
    }
}
